package com.hifar.test.entrust.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.hifar.plat.AopOption.Dict;
import com.hifar.plat.AopOption.Excel;
import com.hifar.test.entrust.pojo.HfEnvEntrust;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @author zhuWeiWei
 * @description TODO
 * @date 2025/6/17 10:09
 */
@Data
public class EntrustQRData {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "委托单号")
    @JSONField(name = "ec")
    @JsonProperty("ec")
    private String entrustCode;

    @ApiModelProperty(value = "委托日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(name = "et")
    @JsonProperty("et")
    private Date entrustTime;


    /**
     * 委托部门
     */
    @ApiModelProperty(value = "委托部门")
    @JSONField(name = "ecc")
    @JsonProperty("ecc")
    private String entrustCustCode;


    /**
     * 委托人id
     */
    @ApiModelProperty(value = "委托人编码")
    @JSONField(name = "euc")
    @JsonProperty("euc")
    private String entrustUserCode;



    @ApiModelProperty(value = "委托人联系方式")
    @JSONField(name = "eup")
    @JsonProperty("eup")
    private String entrustUserPhone;

    @ApiModelProperty(value = "课题名称")
    @JSONField(name = "sn")
    @JsonProperty("sn")
    private String subjectName;

    @ApiModelProperty(value = "课题编号")
    @JSONField(name = "so")
    @JsonProperty("so")
    private String subjectNo;


    @ApiModelProperty(value = "样品数量")
    @JSONField(name = "pn")
    @JsonProperty("pn")
    private String productNum;


    @ApiModelProperty(value = "期望完成日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(name = "pft")
    @JsonProperty("pft")
    private Date predictFinishTime;

    /**
     * 试验性质编码
     */
    @ApiModelProperty(value = "试验性质编码")
    @JSONField(name = "tpc")
    @JsonProperty("tpc")
    private String testPropertyCode;

    /**
     * 密级
     */
    @ApiModelProperty(value = "密级")
    @JSONField(name = "s")
    @JsonProperty("s")
    private Integer secretLevel;

    @ApiModelProperty("项目介绍")
    @JSONField(name = "r")
    @JsonProperty("r")
    private String remarks;

    @JSONField(name = "pl")
    @JsonProperty("pl")
    @NotNull(message = "样品信息不能为空")
    @NotEmpty(message = "样品信息不能为空")
    private List<EntrustPieceQrData> pieceList;

    @JSONField(name = "pjl")
    @JsonProperty("pjl")
    @NotNull(message = "项目信息不能为空")
    @NotEmpty(message = "项目信息不能为空")
    private List<EntrustProjectQrData> projectList;

}
